package cn.bdqn.biz;

import java.lang.reflect.Proxy;

import cn.bdqn.biz.impl.Dog;

public class client {
	
	public static void main(String[] args){
		//通过JDK创建代理类实例
		Animal tartget = new Dog();//希望被代理的业务类
		Myproxy handler = new Myproxy(tartget);
		/**
		 * 根据业务逻辑类和实现InvocationHandler接口横切逻辑创建代理实例
		 * 参数一：类加载器
		 * 参数二：创建代理实例需要的接口
		 * 参数三：业务逻辑与横切逻辑编程器对象（Myproxy）
		 */
		Animal dog = (Animal)Proxy.newProxyInstance(tartget.getClass().getClassLoader(),
						tartget.getClass().getInterfaces(), 
						handler);
		dog.run();
		dog.jump();
	}
}
